#include"SeqStack.h"


void InitialStack(SeqStack *pSeqStack)
{
	pSeqStack->top=0;
}



bool StackEmpty(SeqStack* pSeqStack)
{
	if(pSeqStack->top==0)
	{
		return true;
	}
	else
	{
		return false;
	}
}



bool GetTop(SeqStack *pSeqStack, DataType *pData)
{
	if(pSeqStack->top<=0)
	{
		cout<<"Stack Empty"<<endl;
		return false;
	}
	else
	{		
		*pData=pSeqStack->stack[pSeqStack->top-1];
		return true;
	}
}


bool  PushStack(SeqStack *pSeqStack, DataType data)
{
	if(pSeqStack->top>=StackSize)
	{
		cout<<"Stack Full"<<endl;
		return false;
	}
	else
	{
		pSeqStack->stack[pSeqStack->top]=data;
		pSeqStack->top++;
		return true;
	}
}




bool PopStack(SeqStack *pSeqStack, DataType *pData)
{
	if(pSeqStack->top<=0)
	{
		cout<<"Stack Empty"<<endl;
		return false;
	}
	else
	{
		*pData=pSeqStack->stack[pSeqStack->top-1];
		pSeqStack->top--;
		return true;
	}
}



int GetStackLength(SeqStack *pSeqStack)
{
	return pSeqStack->top;
}




void PrintStack(SeqStack *pSeqStack)
{
	for(int i=0;i<pSeqStack->top;i++)
	{
		cout<<pSeqStack->stack[i]<<endl;
	}
}
